Over the past generation, virtualization of computer processors has become commonplace. This virtualization involves time slicing of the virtual processors or machines between physical processors. In such virtual processor environments wherein multiple user computers, i.e. client devices are connected to each virtual processor platform providing a plurality of physical processors respectively connected to these, power management is important. This is particularly the case with the current technology of multicore processors on a single integrated circuit chip, e.g. dual core chips. These multicore processors, when operating effectively, do reduce power consumption and, consequently, wasted heat. However, such multicore processors require tighter power management to obtain maximum overall processor power per watt. It is, consequently, important to constrain power at all levels. Accordingly, when a logical or virtual processor application thread being run on a physical processor goes into an idle state in current virtual processing systems, the physical processor core running an application program thread is immediately ceded to the controlling hypervisor. The hypervisor may either cede the core (processor) to a thread from an application running on another logical processor or put the core into a low power state.
The speed with which cores (physical processors) are put into a low power state or ceded to other application threads in current virtualization systems present some problems. When an application thread running on a core to which the thread has dispatched an IDLE, shortly thereafter dispatches instructions, the core will have to be awakened from the low power or snooze state. There will be an attendant latency in awakening the core into the active power state so that the core is ready to run the next instructions from the thread. This latency inhibits optimum effectiveness in power management and in the distribution of application threads between cores.
This problem has been recognized and the processor virtualization technology has applied some solutions. These include: disabling any ceding to the hypervisor, ceding after a fixed time period or ceding immediately. However, all of these current solutions involve making an initial determination as to which fixed approach would be most appropriate for a given workload requirement and applying such a fixed approach until the workload requirements change.